
import {getToken,setToken,removeToken} from '@/utils/auth'
import { getprofile, getuserhead, login } from '@/api/user'

// 导出默认配置
export default {
  namespaced: true,
  state: {
    token:getToken() || null ,
    userInfo: {} 
  },
  mutations: {
    // 设置token
    updateToken(state,newToken){
     state.token = newToken // 设置token
     setToken(newToken)
    },
    // 删除token
    removeToken(state){
     state.token = null  // 删除vuex的token
     removeToken()
    },
    // 设置用户信息
    setUserInfo(state,userInfo){
     state.userInfo = userInfo
    },
    // 删除用户信息
     reomveUserInfo(state){
     state.userInfo = {}
    },
    
  },
  actions: {
   // 发送请求获取token,存储vuex中
   async userLogin (context, loginForm){
    // contex是指向store实例
     console.log(context,'context');
     // 发送请求获取token
      const res = await login(loginForm)
      console.log('data----vuex',res.data);
      // 将token存到vuex中
      context.commit('updateToken',res.data)
    
   },
   // 发送请求获取用户信息,存储到vuex中
   async getUserInfo (context){
    console.log('context是什么',context);
    // 获取ajax数据
     const res =await getprofile()
     // 根据id再发请求,获取头像信息
      const info = await getuserhead(res.data.userId)
     // 提交给methods修改
     context.commit('setUserInfo',{...res.data, ...info.data})
   
  },
   // 退出登录
    logout(context) {
    // 删除token
    context.commit('removeToken')
    // 删除userInfo
    context.commit('reomveUserInfo')
  }
  }
}